HTML的註解是使用 <!-- -->
而CSS的註解是使用 /* */
同樣一份HTML,
在不同瀏覽器開起來,樣式卻不一定完全相同
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>我是H1標籤</h1>
<p>P段落</p>
<a href="#">a連結</a>
<ul>
<li>物件1</li>
<li>物件2</li>
</ul>
</body>
</html>
這一份HTML在,IE
vs Chrome
兩者開起來的差異
瀏覽器(Chrome、Safari、IE、Firefox等)預設會對每個標籤做屬性預設值,
例如預設行高、文字大小、列表樣式、標籤邊界及留白區域等等,
用不同瀏覽器開起來的效果也不盡相同。
但這樣很麻煩啊,
要是設計師設計出一套規格,工程師也順利寫出來了,
但使用者用的瀏覽器差異很大,是不是有機會跑版走歪?
既然CSS可以後者覆蓋前面,
那就覆寫所有的tag,讓全部瀏覽器預設值先歸零(移除預設樣式)呀!
於是就有人寫出了歸零的樣式表,叫作CSS Reset的樣式,
好讓設計師方便統一瀏覽器樣式。
但因為對於歸零沒有一個明確的定義(大家對於歸零的想法不太一樣),
所以坊間流傳多種CSS Reset版本,其中最為廣用的是Eric Meyer的版本
就是以下這一份CSS
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
直接copy下來,存檔後就能當作一般樣式使用了。
檔名建議取為cssreset.css
,而不要叫作
檔案建議取名為 cssreset.css
或者cssreset-context.css
(而非 reset.css
、reset-context.css
)
經過Reset後IE
開起來 vs Chrome
開起來
經過CSS Reset後,
不論<h1>
、<p>
、或是<div>
,
全部標籤大小及所佔空間就都一模一樣了。
CSS Reset要先做,再做自己的樣式
...
<link rel="stylesheet" href="cssreset.css">
<link rel="stylesheet" href="style.css">
...
我先宣告變數 x=10, y=5
再做歸零讓 x=0, y=0
最後才設上我要的樣式數值 x=100, y=-100看到這,不自覺心裡OS:
要是各大瀏覽器們不各自設各自的樣式、而是有一套預設的共同的基準
我們何必多此一舉搞這個詭異的Reset步驟
CSS Normalize 做的事情類似於 CSS Reset,
但並沒有像CSS Reset把瀏覽器的設定、全部的值都替換掉,
而是選擇保留瀏覽器的預設,
僅針對瀏覽器間版本相容問題進行修改,較泛式,
免除重新設定各式<h1>
、<h2>
、<p>
大小等等的麻煩。
可參考這一份Normalize.css
裡面有有這一行做了什麼、以及為何而做的詳細註解。
(Normalize 更新次數比起CSS Reset稍微頻繁些)
在瀏覽網頁時,瀏覽器會自動快取一些小圖片、樣式表及執行的指令稿。
當網頁重新整理時,若硬碟快取中有快取資料,
瀏覽器會優先拿取、以節省網路流量(省去再去跟Server要一次)。
網頁快取也有可能對造成網頁開發者造成
"疑,我明明改樣式了,為什麼重新整理後卻沒有吃到樣式?"
並開始懷疑是否是自己寫法錯誤,導致沒指定到標籤等之類的疑惑。
在Windows上: Ctrl + F5
在MacOS上: Command + Shift + R
繞過瀏覽器快取,來保證瀏覽器要到的是最新的資料。